package com.zomiot.portal.auth.constant;

/**
 * 用户状态枚举
 *
 * 状态说明：
 * - ACTIVE：正常激活状态，可正常登录和使用系统
 * - DISABLED：已禁用状态，无法登录系统
 *
 * @author Your Name
 */
public enum UserState {

    /**
     * 正常激活状态
     * - 可以正常登录
     * - 可以使用所有权限范围内的功能
     */
    ACTIVE,

    /**
     * 已禁用状态
     * - 无法登录系统
     * - 已登录的会话将被强制下线
     *
     * 禁用原因可能包括：
     * - 违反使用条款
     * - 账号异常（被盗、恶意操作等）
     * - 用户主动申请注销
     */
    DISABLED;

    /**
     * 获取状态的显示名称（中文）
     *
     * @return 状态的中文名称
     */
    public String getDisplayName() {
        return switch (this) {
            case ACTIVE -> "正常";
            case DISABLED -> "已禁用";
        };
    }

    /**
     * 判断是否可以登录
     *
     * @return true=可以登录, false=不可登录
     */
    public boolean canLogin() {
        return this == ACTIVE;
    }
}